// 1.使用express搭建服务器

// 1.1导入express模块
let express = require('express')

// 1.2创建router对象(路由对象),实际上router是一个函数
let router = express.Router()

// 1.3引入数据库自定义模块
let db = require("../db")


// 2.根据大事件,设计增删改查接口

// 将接口挂载到router对象上


// 2.0使用express封装好的方法获取客户端提交的请求体，添加上这个方法，所有的设计的接口都有这个方法；


// 一般放在最上面；
// 专门处理所有的post请求有关参数
// 内置方法调用

// 2.1设计接口: 获取全部数据
router.get('/cates', function (req, res) {
    // 3.从数据读取数据
    db('select * from category', null, function (err, data) {
        // 3.1读取有问题
        if (err != null) {
            res.send({ // 无需设置请求头和转换为JSON格式
                "status": 1,
                "message": "获取文章分类列表失败！",
            })
        }
        // 3.2读取成功 
        else {
            res.send({
                "status": 0,
                "message": "获取文章分类列表成功！",
                'data': data
            })
        }

    })

})

// 2.2设计接口: 新增文章分类到数据库
router.post('/addcates', function (req, res) {
    // 2.2.1.获取前端参数
    // 上面2.0  req.body


    // 3.把数据添加到数据库
    db('insert into category set ?', req.body, function (err, data) {
        if (err != null) {
            res.send({ // 无需设置请求头和转换为JSON格式
                "status": 1,
                "message": "新增文章分类失败！",
            })
        } else {
            res.send({
                "status": 0,
                "message": "新增文章分类成功！"
            });
        }
    })
})

// 2.3设计接口: 修改文章分类到数据库
router.post('/updatecate', function (req, res) {
    // 2.3.1.获取前端数据
    // 上面2.0  // req.body  ------> { name: '新闻', alias: 'news', Id: '1' }

    // 3.把数据添加到数据库
    db('update category set ? where Id=?', [req.body, req.body.Id], function (err, data) {
        if (err != null) {
            res.send({ // 无需设置请求头和转换为JSON格式
                "status": 1,
                "message": "更改文章分类失败！",
            })
        } else {
            res.send({
                "status": 0,
                "message": "更改文章分类成功！"
            });
        }
    })
})


// 2.4设计接口: 删除文章分类
router.get('/deletecate/:id', function (req, res) {

    // get动态接口获取前端参数 :// req.params-----> // { id: '3' }
    // get普通接口获取前端参数 :req.query
    // post普通接口获取前端参数 : 前提得有2.0条件  req.body  // req.body  ------> { name: '新闻', alias: 'news', Id: '1' }

    // 3.把数据添加到数据库
    db('delete from category where Id = ?', req.params.id, function (err, data) {
        if (err != null) {
            res.send({ // 无需设置请求头和转换为JSON格式
                "status": 1,
                "message": "删除文章分类失败！",
            })
        } else {
            res.send({
                "status": 0,
                "message": "删除文章分类成功！"
            });
        }
    })
})
// 2.4设计接口: 获取一个分类
router.get('/one', function (req, res) {

    // get动态接口获取前端参数 :// req.params-----> // { id: '3' }
    // get普通接口获取前端参数 :req.query----->{ id: '3' }
    // post普通接口获取前端参数 :req.body  // req.body  ------> { name: '新闻', alias: 'news', Id: '1' }  前提得有上面2.0条件

    // 3.把数据添加到数据库
    db('select * from category where Id = ?', req.query.id, function (err, data) {
        if (err != null) {
            res.send({ // 无需设置请求头和转换为JSON格式
                "status": 1,
                "message": "获取文章分类失败！",
            })
        } else {
            res.send({
                "status": 0,
                "message": "获取文章分类成功！"
            });
        }
    })
})


// 上面知识设计了url后半部分
// 判断头部的部分在路由改造里面
// 导出路由对象
module.exports = router